ブログタイトルの通りですが、技術評論社より 2019年10月24日発売の WEB+DB PRESS Vol.113 の連載「Perl Hackers Hub」に寄稿しました。
連載「Perl Hackers Hub」の今回のテーマは「【第58回】正規表現の勘所」で、尾形 鉄次さん(@xtetsuji)執筆です。文字列処理に便利な正規表現ですが、読みづらいなどの理由で敬遠されがちです。初学者向けの丁寧な解説が少ないと筆者が感じたPerlの正規表現について解説します。#wdpress
— WEB+DB PRESS編集部 (@wdpress) October 24, 2019
WEB+DB PRESS について
WEB+DB PRESS は技術評論社より隔月(偶数月)に発行されるウェブ系のIT技術に関する専門雑誌です。
サーバサイドで動作するプログラミング言語についてのトピックも手厚く、その中で回ごとに著者持ち回りでプログラミング言語 Perl について解説する連載が「Perl Hackers Hub」です。
テーマは「正規表現の勘所」
表紙の最下部にも載せて頂いているのですが、テーマは「正規表現の勘所」です。
IT技術を専門にしている方には説明不要かと思いますが、正規表現とは文字列を検索するための高度な技術の一つと思ってもらえると良いでしょう。
紙幅の都合もあり、厳選した上で特に以下の話題を書きました。
- Perlの日本語処理の初歩の話題と正規表現
- 日本語の1文字を
.
で拾うことが出来ない場合
- 日本語の1文字を
- 修飾子
- 特に
/m
、/s
、そして/r
- 特に
- 先読みと後読み(先後読み)
- ゼロ幅マッチの考え方
- 否定の先後読みの実践
例えば
- 「Perl の日本語処理って独特だから、正規表現でもハマったことあったなぁ」
- 「
/m
と/s
って先輩が「常に指定しろ」って言っていたけれど、あまり意味を理解していないんだよなぁ」 - 「先読みとか後読み、たまに聞く用語なんだけど、使いこなすと便利なんだろうか」
と思っている方には特にオススメです!
テーマ選びの話
執筆の話を頂いてテーマ選びをする際、もともと自分を代表するプロダクトといったものも無く、現行の業務では Perl をメインに使った開発業務に携わっていないこともあり、何をテーマにするか少々悩みました。
最近の私の社内での活動といえば、チーム内や新人さんのプログラミング教育といったことが挙げられます。
社内プログラミング教育では、Perl も含め、いくつかのプログラミング言語を題材に解説をするのですが、その中で特に悩んだのが正規表現。なぜなら、書籍やウェブサイトの解説で初学者におすすめできるものが少ないのです。もちろん「.
は任意の一文字とマッチする」「^
は冒頭にマッチする」といった初歩は解説されているのですが、その先の解説が少ない。書籍によっては「露骨に正規表現を避けているなぁ」と思うこともしばしば。.
は標準では改行にマッチしないことや、広くゼロ幅マッチの考えなど、初歩の初歩ではないものの知っておけば活かせるんじゃないかという教育活動での課題意識が今回のテーマ選びの源流でした。
あと、社外では6年ほど前からPerl入学式の運営とサポーター活動をしているのですが、そこでも正規表現のカリキュラムの改訂が話題になっていて、漠然と「初学者の段階に応じて、どの程度の正規表現をどのように教える必要があるだろう」と考えてもいました。今回の寄稿執筆での経験や考察をPerl入学式の資料改訂にもフィードバックしていきたいとも考えています。
少し苦労話
苦労話をし始めると長くなること確実なので軽く触れることにします。詳細は別のブログ記事に書く予定です。
話を頂いたのが7月下旬ごろ(?)だったのですが、色々と他の作業との兼ね合いがあって、8月中旬から本格的に作業を始め、ちょうど9月まるまるこの執筆作業をしていました。とにかく無事に脱稿できて胸をなでおろしました。
最初は8ページで依頼を頂いていたのですが、書かなきゃと一心不乱に書いていたら、編集者さんのレビューを通さない期間中に14.5ページを書いてしまい、そこからが削減の嵐が開催されることに。ご配慮いただき、最終的には9ページ頂くことができました。
最初「書けずにページを埋められないことより、書きすぎて削減することの方がずっと楽では?」と思っていたのですが、削ると前後の不整合が発生するし、もともと曖昧な解説箇所に追記を行う必要が出てきてさらに分量が増えたりと、「ずっと楽」というわけでもなかったです。細かなレビューは大事ですね。書き過ぎたのがレビューが入らない土日だったので、避け難かったかもという言い訳もありますが……。
読んでいて各所のつながりが不自然にならないよう心血を注いだつもりですが、もしかしたら至らぬ点があるかもしれません。限られた紙幅で正規表現を網羅的に解説することは出来ないので、私の話題選定力が試されているかもしれません。
*
とはいえ、初学者を脱しようとしている Perl プログラマが正規表現の理解を深めていく上で役立つ知識は提供できたかなという手応えでいます。
2019年10月24日に全国の書店で発売開始です。私の地元の書店でも発売数日後までには配本されると思います。ぜひ手に取って見て下さい!